Many coding systems are often used to reduce the amount of information required to adequately represent a source signal. By reducing information capacity requirements, a signal representation can be transmitted over channels having lower bandwidth or stored on media using less space.
Perceptual coding can reduce the information capacity requirements of a source audio signal by eliminating either redundant components or irrelevant components in the signal. This type of coding often uses filter banks to reduce redundancy by decorrelating a source signal using a basis set of spectral components, and reduces irrelevancy by adaptive quantization of the spectral components according to psycho-perceptual criteria. A coding process that adapts the quantizing resolution more coarsely can reduce information requirements to a greater extent but it also introduces higher levels of quantization error or “quantization noise” into the signal. Perceptual coding systems attempt to control the level of quantization noise so that the noise is “masked” or rendered imperceptible by the spectral content of the signal. These systems typically use perceptual models to predict the levels of quantization noise that can be masked by a source signal.
Spectral components that are deemed to be irrelevant because they are predicted to be imperceptible need not be included in the encoded signal. Other spectral components that are deemed to be relevant can be quantized using a quantizing resolution that is adapted to be fine enough to have the quantization noise rendered just imperceptible by spectral components of the source signal. The quantizing resolution is often controlled by bit allocation processes that determine the number of bits used to represent each quantized spectral component.
Practical coding systems are usually constrained to allocate bits such that the bit rate of an encoded signal conveying the quantized spectral components is either invariant and equal to a target bit rate or variable, perhaps limited to a prescribed range, where the average rate is equal to a target bit rate. For either situation, coding systems often use iterative procedures to determine bit allocations. These iterative procedures search for the values of one or more coding parameters that determine bit allocations such that, according to a perceptual model, quantizing noise is deemed to be masked optimally subject to bit rate constraints. The coding parameters may, for example, specify the bandwidth of the signal to be encoded, the number of channels to be encoded, or the target bit rate.
In many coding systems, each iteration of the bit allocation process requires significant computational resources because bit allocations cannot be easily determined from the coding parameters alone. As a result, it is difficult to implement high-quality perceptual audio encoders for low-cost applications such as consumer video recorders.
One approach to overcome this problem is to use a bit allocation process that terminates the iteration as soon as it finds any values for the coding parameters that result in a bit allocation satisfying the bit-rate constraint. This approach generally sacrifices encoding quality to reduce computational complexity because, in general, such an approach will not find optimal values for the coding parameters. This sacrifice may be acceptable if the target bit rate is sufficiently high but it is not acceptable in many applications that must impose stringent limitations on the bit rate. Furthermore, this approach does not guarantee a reduction in computational complexity because it cannot guarantee that acceptable values of the coding parameters will be found using fewer iterations than would be required to find optimal values.